hysop.backend.device.opencl.opencl_kernel module

class hysop.backend.device.opencl.opencl_kernel.OpenClKernel(name, program, args_mapping, default_queue=None, default_global_work_size=None, default_local_work_size=None, default_args=None, **kwds)[source]

Bases: object

OpenCL program wrapper, used to generate OpenClKernelLauncher. Manage launching of one OpenCL program and manage its args_mapping as keyword args_mapping.

Create a OpenClKernel.

Parameters:
  • name (str) – A name for this program (for logging purposes).

  • program (cl.Program) – The precompiled program that contains the program to be launched. When a program is passed we can create a unique instance of a program that will have its args_mapping already set in KernelLaunchers.

  • args_mapping (dict) – Dictionnary containing arg names as keys and tuple (position, type) as values.

  • default_queue (cl.CommandQueue, optional) – Default queue to run the program.

  • default_global_work_size (tuple of ints, optional) – Default global work size.

  • default_local_work_size (tuple of ints, optional) – Default local work size.

  • default_args (dict, optional) – Default program args_mapping.

  • kwds (dict) – Base class args_mapping.

property args_mapping

Dictionnary containing arg names as keys and tuple (position, type) as values.

build_launcher(name=None, name_prefix=None, name_postfix=None, queue=None, local_work_size=None, global_work_size=None, **kwds)[source]

Build an OpenClKernel with more default arguments bound. If all arguments are bound, return an OpenClKernelLauncher, else return an OpenClKernel.

build_list_launcher(launcher_name=None, *args, **kwds)[source]

Build a OpenClKernelLauncher and return it as a OpenClKernelListLauncher. See self.build_launcher() and OpenClKernelLauncher.as_list_launcher()

property default_args

Default keyword args_mapping to launch the program.

property default_global_work_size

Default global work size to launch the program.

property default_local_work_size

Default default_local_work_size to launch the program.

property default_queue

Default queue to launch the program.

property name

Get the name of this program.

property program

Get the precompiled program to be launched.